home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 026-050 / 049 / plot / plot.h < prev    next >
C/C++ Source or Header  |  1995-03-13  |  5KB  |  193 lines

  1. /* plot.h--definitions, etc with a little help from Lattice et al */
  2.  
  3. #include "exec/types.h"
  4. #include "exec/nodes.h"
  5. #include "exec/lists.h"
  6. #include "exec/ports.h"
  7. #include "exec/devices.h"
  8. #include "devices/keymap.h"
  9. #include "graphics/regions.h"
  10. #include "graphics/copper.h"
  11. #include "graphics/gels.h"
  12. #include "graphics/gfxbase.h"
  13. #include "graphics/gfx.h"
  14. #include "graphics/sprite.h"
  15. #include "graphics/clip.h"
  16. #include "graphics/view.h"
  17. #include "graphics/rastport.h"
  18. #include "graphics/layers.h"
  19. #include "libraries/dos.h"
  20. #include "lattice/stdio.h"
  21. #include "lattice/math.h"
  22. #include "intuition/intuition.h"
  23. #include "hardware/dmabits.h"
  24. #include "hardware/custom.h"
  25. #include "hardware/blit.h"
  26. #include "graphics/text.h"
  27. #define NL 0
  28. long GfxBase = 0;   /* Base of graphics library */
  29. long IntuitionBase = 0;      /* Base of Intuition library */
  30. struct Window *OpenWindow();
  31. struct InputEvent *Intuition();
  32. struct Screen *OpenScreen();
  33. struct TextAttr TestFont = {
  34.    "topaz.font",TOPAZ_SIXTY,FS_NORMAL,FPF_ROMFONT, /* Define text font for screen */
  35.    };
  36. USHORT class;   /* Intu event class */
  37. USHORT code;   /* Intu event code */
  38. struct Window *w;      /* Lots of pointers for lots of things */
  39. struct RastPort *rp;
  40. struct ViewPort *vp;
  41. struct Screen *screen;
  42. #define  height 14
  43. struct SpriteImage {
  44. UWORD posctl[2];
  45. UWORD sprdata[2][height];
  46. UWORD reserved[2];
  47. };
  48.  
  49. /********************Sprite-Pointer-Defines*********************/
  50.  
  51. struct SpriteImage PointImage = {
  52.    100,100,
  53.    0x0000, 0x3ffe,
  54.    0x0000, 0x3ffe,
  55.    0x0080, 0x3ffe,
  56.    0x0080, 0x1ffc,
  57.    0x0080, 0x1ffc,
  58.    0x0080, 0x0ff8,
  59.    0x0080, 0x0ff8,
  60.    0x0000, 0x07f0,
  61.    0x0080, 0x07f0,
  62.    0x0080, 0x07f0,
  63.    0x0000, 0x03e0,
  64.    0x0000, 0x03e0,
  65.    0x0000, 0x01c0,
  66.    0x0000, 0x0080,
  67.    NULL,NULL
  68. };
  69. struct SpriteImage CursorImage = {
  70.    100,100,
  71.    0x0000, 0x0000,
  72.    0x0000, 0x0100,
  73.    0x0000, 0x0100,
  74.    0x0000, 0x0100,
  75.    0x0000, 0x0100,
  76.    0x0000, 0x0100,
  77.    0x0000, 0x0100,
  78.    0x0000, 0xffff,
  79.    0x0000, 0x0100,
  80.    0x0000, 0x0100,
  81.    0x0000, 0x0100,
  82.    0x0000, 0x0100,
  83.    0x0000, 0x0100,
  84.    0x0000, 0x0100,
  85.    NULL,NULL
  86. };
  87.  
  88. int MathBase;
  89. int MathTransBase;
  90. union kludge1
  91. {
  92.    FLOAT num1;
  93.    int i1;
  94. } k1;
  95. union kludge2
  96. {
  97.    FLOAT num2;
  98.    int i2;
  99. } k2;
  100. union kludge3
  101. {
  102.    FLOAT num3;
  103.    int i3;
  104. } k3;
  105. union kludge4
  106. {
  107.    FLOAT num4;
  108.    int i4;
  109. } k4;
  110. union kludge5
  111. {
  112.    FLOAT num5;
  113.    int i5;
  114. } k5;
  115. union kludge6
  116. {
  117.    FLOAT num6;
  118.    int i6;
  119. } k6;
  120. /************************ Screen Defines ***********************************/
  121.  
  122. struct NewScreen ns = {
  123.    0,0,         /* start pos.*/
  124.    320,200,5,      /* width height depth (5 bit planes) */
  125.    0,1,         /* detail pen, block pen */
  126.    0,       /* viewing mode (normal 320x200) */
  127.    CUSTOMSCREEN,      /* screen type */
  128.    &TestFont,      /* font */
  129.    NULL,      /* screen title */
  130.    NULL,
  131.    NULL,      /* gadget pointer */
  132.    };
  133.  
  134. /************************ Window Defines ***********************************/
  135.  
  136. struct NewWindow nw = {
  137.       0,0,         /* Starting corner */
  138.       320,200,      /* Width, height */
  139.       0,3,         /* detail, block pens */
  140.       CLOSEWINDOW | MENUPICK
  141.       | REFRESHWINDOW | MOUSEBUTTONS | MOUSEMOVE,         /* IDCMP flags */
  142.       SMART_REFRESH | ACTIVATE | BORDERLESS | WINDOWCLOSE
  143.       | REPORTMOUSE | GIMMEZEROZERO,
  144.                /* Window flags */
  145.       NULL,         /* Pointer to first gadget */
  146.       NULL,         /* Pointer to checkmark */
  147.       "PLOT3D",      /* title */
  148.       NULL,         /* screen pointer */
  149.       NULL,         /* bitmap pointer */
  150.       0,0,0,0,      /* sizing limits */
  151.       CUSTOMSCREEN      /* type of screen */
  152.       };
  153. /************************ Set-Up routine ***********************************
  154. *   This function opens the Intuition and Graphics libraries, then     *
  155. *       opens up our custom screen and window, defining screen colors,     *
  156. *   size, etc...                        *
  157. ***************************************************************************/
  158. initwind()
  159. {
  160.  
  161.    GfxBase = OpenLibrary("graphics.library",0); /* Get graphics driver */
  162.    if(GfxBase == NULL)
  163.    {
  164.       printf("Can't open graphics library...\n");
  165.       exit();
  166.    }
  167.    if((MathBase=OpenLibrary("mathffp.library",0)) < 1) {
  168.       printf("n\n*** ERROR *** Can't open mathffp.library");
  169.       exit();
  170.    }
  171.    if((MathTransBase=OpenLibrary("mathtrans.library",0)) < 1) {
  172.       printf("n\n*** ERROR *** Can't open mathtrans.library");
  173.       exit();
  174.    }
  175.    IntuitionBase = OpenLibrary("intuition.library",0); /*Get Intuition*/  
  176.    if(IntuitionBase == NULL)
  177.    {
  178.       printf("Can't open intuition library...\n");
  179.       exit();
  180.    }
  181.    screen = OpenScreen(&ns); /* Open our new screen */
  182.    if(screen == NULL)
  183.    {
  184.       exit(0);
  185.    }
  186.    nw.Screen = screen;
  187.    w = OpenWindow(&nw);      /* Open our new window */
  188.    rp = w->RPort;         /* Get the raster port pointer */
  189.    vp = &screen->ViewPort;   /* Get the view port pointer */
  190.    SetDrMd(rp,JAM1);
  191. }
  192.  
  193.